package com.f21.f21assessoria.service;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;

import javax.inject.Named;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.f21.f21assessoria.dao.CrudDao;
import com.f21.f21assessoria.dao.TurmaDao;
import com.f21.f21assessoria.dao.TurmaDaoImp;
import com.f21.f21assessoria.dao.UsuarioDao;
import com.f21.f21assessoria.dao.UsuarioDaoImp;
import com.f21.f21assessoria.enums.Meses;
import com.f21.f21assessoria.enums.Perfis;
import com.f21.f21assessoria.enums.TipoTelefone;
import com.f21.f21assessoria.model.cadastro.Telefone;
import com.f21.f21assessoria.model.cadastro.Usuario;
import com.f21.f21assessoria.model.modalidade.Turma;

@Service
public class UsuarioServImp extends CrudServImp<Usuario> implements UsuarioService, Serializable{
	
	
	private static final long serialVersionUID = 1L;
	@Autowired
	private UsuarioDao usuarioDao;

	
	public void setAlunoDao(UsuarioDao usuarioDao) {
		this.usuarioDao = usuarioDao;
	}
	
	public UsuarioDao getAlunoDao() {
		return usuarioDao;
	}
		
	
	public void addTurma() {
	
		usuarioDao.addTurma();	
	}
	
	public void excluir(Usuario user){
		//TODO Criar regra de negocio para exluir
		super.excluir(user);
	}
	
	public Collection<Usuario> listarAlunoTurma(Turma turma) {
	
		return null;
	}
	
		
	@Override
	public List<Usuario> listarTodos() {
		return usuarioDao.listarTodos();
	}

	public void novoTel(Usuario user) {
		Telefone tel = new Telefone();
		tel.setUser(user);
		user.getTelefones().add(tel);
	}

	@Override
	public Usuario buscarPorId(long id) {
		return usuarioDao.buscarPorId(id);
	}

	@Override
	public CrudDao<Usuario> getDAO() {
		return usuarioDao;
	}
	
	public List<Usuario> listarProfessores() {
		return usuarioDao.listarTodosPerfil(Perfis.PROFESSOR);
	}
	
}
